Speculative Evaluation for Parallel Graph Reduction
نویسندگان
چکیده
Speculative evaluation can improve the performance of parallel graph reduction systems through increased parallelism. Although speculation is costly, much of the burden can be absorbed by processors which would otherwise be idle. Despite the overhead required for speculative task management, our prototype implementation achieves 70% eeciency for speculative graph reduction, with little impact on mandatory tasks. Through speculative evaluation, some simple benchmarks exhibit nearly a factor of ve speedup over their conservative counterparts. 1 Motivation Graph reduction is a popular implementation technique for non-strict functional programming languages. Because graph reduction is free of side-eeects, it is well-suited to parallel processing. With conservative evaluation, an expression is not evaluated until its results are actually required. Speculative evaluation increases parallelism by assigning potentially useful computations to idle processors before their results are required. If a speculative computation later becomes necessary, the time required to complete the computation is reduced. On the other hand, if a speculative computation later becomes irrelevant, the time wasted on its evaluation is unimportant, because the only processors that engage in speculative computations are those that would otherwise have been idle. Unfortunately, speculative tasks are diicult to manage 2]. Speculative tasks compete with mandatory tasks for processors. A speculative task which becomes necessary should be upgraded to a mandatory task. A speculative task which becomes irrelevant should be discarded. Shared subgraphs may have to be repaired whenever a speculative task is terminated prematurely. Speculative evaluation may contribute additional hidden costs as well. For instance, even when processing elements are available, the memory and communications demands of speculative tasks may degrade the performance of mandatory tasks through increased contention.
منابع مشابه
Local Speculative Evaluation for Distributed Graph Reduction
In a parallel graph reduction system, speculative evaluation can increase parallelism by performing potentially useful computations before they are known to be necessary. Speculative computations may be coded explicitly in a program, or they may be scheduled implicitly by the reduction system as idle processors become available. A general approach to both kinds of speculation incurs a great dea...
متن کاملImplementation of Speculative Parallelism in Functional Languages
A compile-time analysis technique is developed to derive the probability with which a user-defined function or a supercombinator requires each one of its arguments. This provides a basis for identifying useful speculative parallelism in a program. The performance of speculative evaluation is compared with that of lazy evaluation, and the necessary conditions under which speculative evaluation p...
متن کاملSpeculative Parallel Evaluation Of Classification Trees On GPGPU Compute Engines
We examine the problem of optimizing classification tree evaluation for on-line and real-time applications by using GPUs. Looking at trees with continuous attributes often used in image segmentation, we first put the existing algorithms for serial and data-parallel evaluation on solid footings. We then introduce a speculative parallel algorithm designed for single instruction, multiple data (SI...
متن کاملParallel graph reduction for divide-and-conquer applications† Part I - program transformations
A proposal is made to base parallel evaluation of functional programs on graph reduction combined with a form of string reduction that avoids duplication of work. Pure graph reduction poses some rather difficult problems to implement on a parallel reduction machine, but with certain restrictions, parallel evaluation becomes feasible. The restrictions manifest themselves in the class of applicat...
متن کاملA Chemical Abstract Machine for Graph Reduction
Graph reduction is an implementation technique for the lazy λ-calculus. It has been used to implement many non-strict functional languages, such as lazy ML, Gofer and Miranda. Parallel graph reduction allows for concurrent evaluation. In this paper, we present parallel graph reduction as a Chemical Abstract Machine, and show that the resulting testing semantics is adequate wrt testing equivalen...
متن کامل